package com.xdog.web3.service;

import com.alibaba.fastjson.JSONObject;
import com.xdog.web3.domain.token.*;

import java.util.List;

/**
 * Web3代币服务接口
 */
public interface IWeb3TokenService {

    /**
     * 代币搜索
     * @param query 搜索查询参数
     * @return 搜索结果列表
     */
    JSONObject searchTokens(TokenSearchQuery query);

    /**
     * 获取代币基础信息
     * @param requests 代币基础信息请求参数列表
     * @return 代币基础信息列表
     */
    JSONObject getTokenBasicInfo(List<TokenBasicInfoRequest> requests);

    /**
     * 获取代币交易信息
     * @param requests 代币交易信息请求参数列表
     * @return 代币交易信息列表
     */
    JSONObject getTokenPriceInfo(List<TokenPriceInfoRequest> requests);

    /**
     * 获取代币榜单
     * @param query 榜单查询参数
     * @return 代币榜单列表
     */
    JSONObject getTokenTopList(TokenTopListQuery query);

    /**
     * 获取代币持有人信息
     * @param query 持有人信息查询参数
     * @return 代币持有人信息列表
     */
    JSONObject getTokenHolders(TokenHolderQuery query);
}